/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.dp1.pucp.Ventas.Controlador;

import CharliesCookies.MainController;
import com.dp1.pucp.Ventas.DAO.PresentacionDAO;
import com.dp1.pucp.Ventas.VIsta.PresentacionGUI;
import com.dp1.pucp.Modelo.Clases.Presentacion;
import com.dp1.pucp.Seguridad.DAO.LogDAO;
import com.dp1.pucp.Util.Validaciones;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
 *
 * @author ubuntu64
 */
public class PresentacionControlador {
    private PresentacionDAO dao;
    private PresentacionGUI presentacionGUI;
    private Presentacion presentacion;
    
    public PresentacionControlador (PresentacionDAO dao, PresentacionGUI vista, Presentacion presentacion){
        this.dao = dao;
        this.presentacionGUI = vista;
        this.presentacion = presentacion;
        
        presentacionGUI.llenaComboEstado(this.dao.listarEstado());
        presentacionGUI.addGuardarListener(new guardarPresentacionListener());
        presentacionGUI.addLimpiarListener(new limpiarPresentacionListener());
        presentacionGUI.addCancelarListener(new cancelarPresentacionListener());
        
        presentacionGUI.setFormulario(presentacion);
        
       
        
    }
    
    class guardarPresentacionListener implements ActionListener {
        @Override 
        
        public void actionPerformed(ActionEvent e) {
            boolean esnuevo = true;
            Presentacion p = new Presentacion();
            
            
            
            String nombre = presentacionGUI.getNombre();  boolean flagNombre = false;
            String descripcion = presentacionGUI.getDescripcion(); boolean flagDescr = false;
            Float volumen = presentacionGUI.getVolumen(); boolean flagVolumen = false;
            Integer cantidad = presentacionGUI.getCantidad(); boolean flagCantidad = false;
            Integer estado = presentacionGUI.getEstado(); boolean flagEstado = false;
            
            if (nombre.equals("")) flagNombre = true;
            if (descripcion.equals("")) flagDescr = true;
            if (volumen==0.0) flagVolumen  = true;
            if (cantidad==0) flagCantidad = true;
            if (estado == 0) flagEstado = true;
            
            if (flagNombre|| flagDescr||flagVolumen||flagCantidad||flagEstado){
                Validaciones.mostrarMensajeErrorVal("Debe ingresar los campos correctamente.");
                return;
            }
            
            if (presentacion!=null){
                p.setIdpresentacion(presentacion.getIdpresentacion());
                esnuevo = false;
            }
            p.setNombre(nombre);
            p.setDescripcion(descripcion);
            p.setVolumen(volumen);
            p.setCantidad(cantidad);
            p.setEstado(estado-1);
            
            dao.guardarPresentacion(p);
            
            presentacionGUI.dispose();
            
            if (esnuevo) {
                LogDAO.insertarLog(MainController.usuario, "Agregar Presentacion");
                Validaciones.mostrarMensajeAvisoVal("La presentacion ha sido creada correctamente");
            }
            else{
                LogDAO.insertarLog(MainController.usuario, "Editar Presentacion");
                Validaciones.mostrarMensajeAvisoVal("La presentacion ha sido modificada correctamente");}
            }
        
    }
    
    class limpiarPresentacionListener implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent e){
            presentacionGUI.limpiarDatos();
        }
    }
    
    class cancelarPresentacionListener implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent e){
            presentacionGUI.dispose();
            if (presentacion!=null)
                LogDAO.insertarLog(MainController.usuario, "Salir Editar Presentacion");
            else
                LogDAO.insertarLog(MainController.usuario, "Salir Agregar Presentacion");
        }
    }
   // PresentacionGUI.llenaComboEstado(this.dao.listarEstados());
}
